const cookieParser = process.server ? require('cookieparser') : undefined
// SSR期间都是一个实例
export const state = () => {
    return {
        user: null
    }
}

export const mutations = {
    setUser(state, data) {
        state.user = data
    }
}

export const actions = {
    // 一个特殊的action方法， 只会在SSR期间自动调用
    // 作用：初始化容器数据，传递数据给客户端使用
    nuxtServerInit({commit}, {req}) {
        let user = null

        if (req.headers.cookie) {
            // 解析Cookie为对象
            const parsed = cookieParser.parse(req.headers.cookie)
            try {
                user = JSON.parse(parsed.user)
            } catch(err) {
                // noop
            }
        }

        commit('setUser', user)
    }
}